package chenji.gunapi;

import org.bukkit.plugin.Plugin;

import chenji.gunapi.antiCheat.AntiMouseCheatManager;
import chenji.gunapi.bullet.BulletManager;
import chenji.gunapi.bullet.player.PlayerGunManager;
import chenji.gunapi.gun.GunManager;
import chenji.gunapi.listeners.PlayerStateListener;
import chenji.gunapi.manager.SuperManager;
import chenji.gunapi.task.GunTaskManager;
import chenji.gunapi.untl.Untl;

public class GunAPI {
	private final static GunAPI api = new GunAPI();
	private final GunTaskManager guntaskmanager;
	private final Untl untl;
	private final GunManager gunmanager;
	private BulletManager bulletmanager;
	private AntiMouseCheatManager amcm;
	private PlayerGunManager playergunmanager;
	private boolean kickwithoutmod;
	private PlayerStateListener playerstatelistener;
	private SuperManager supermanager;

	public GunAPI() {
		this.supermanager = new SuperManager();
		this.guntaskmanager = new GunTaskManager();
		this.untl = new Untl();
		this.gunmanager = new GunManager();
	}

	public void loadManager() {
		this.bulletmanager = new BulletManager();
		this.amcm = new AntiMouseCheatManager();
		this.playergunmanager = new PlayerGunManager();
		this.playerstatelistener = new PlayerStateListener();

	}

	public SuperManager getSuperManager() {
		return this.supermanager;
	}

	public void setKickWithoutMod(boolean arg) {
		this.kickwithoutmod = arg;
	}

	public boolean kickwithourmod() {
		return this.kickwithoutmod;
	}

	public static GunAPI getGunAPI() {
		return GunAPI.api;
	}

	public AntiMouseCheatManager getAntiMouseCheatManager() {
		return this.amcm;
	}

	public GunManager getGunManager() {
		return this.gunmanager;
	}

	public GunTaskManager getGunTaskManager() {
		return guntaskmanager;
	}

	public BulletManager getBulletMnagaer() {
		return this.bulletmanager;
	}

	public Untl getUntl() {
		return this.untl;
	}

	public Plugin getPlugin() {
		return Main.getPlugin();
	}

	public PlayerGunManager getPlayerGunManager() {
		return this.playergunmanager;
	}

	public PlayerStateListener getPlayerState() {
		return this.playerstatelistener;
	}
}
